home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / RIncludes / TextCommon.r < prev    next >
Encoding:
Text File  |  2000-04-12  |  21.0 KB  |  348 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        TextCommon.r
  3.  
  4.      Contains:    TextEncoding-related types and constants, and prototypes for related functions 
  5.  
  6.      Version:    Technology:    Mac OS 9.0
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __TEXTCOMMON_R__
  19. #define __TEXTCOMMON_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25.                                                             /*  Mac OS encodings */
  26. #define kTextEncodingMacRoman             0
  27. #define kTextEncodingMacJapanese         1
  28. #define kTextEncodingMacChineseTrad     2
  29. #define kTextEncodingMacKorean             3
  30. #define kTextEncodingMacArabic             4
  31. #define kTextEncodingMacHebrew             5
  32. #define kTextEncodingMacGreek             6
  33. #define kTextEncodingMacCyrillic         7
  34. #define kTextEncodingMacDevanagari         9
  35. #define kTextEncodingMacGurmukhi         10
  36. #define kTextEncodingMacGujarati         11
  37. #define kTextEncodingMacOriya             12
  38. #define kTextEncodingMacBengali         13
  39. #define kTextEncodingMacTamil             14
  40. #define kTextEncodingMacTelugu             15
  41. #define kTextEncodingMacKannada         16
  42. #define kTextEncodingMacMalayalam         17
  43. #define kTextEncodingMacSinhalese         18
  44. #define kTextEncodingMacBurmese         19
  45. #define kTextEncodingMacKhmer             20
  46. #define kTextEncodingMacThai             21
  47. #define kTextEncodingMacLaotian         22
  48. #define kTextEncodingMacGeorgian         23
  49. #define kTextEncodingMacArmenian         24
  50. #define kTextEncodingMacChineseSimp     25
  51. #define kTextEncodingMacTibetan         26
  52. #define kTextEncodingMacMongolian         27
  53. #define kTextEncodingMacEthiopic         28
  54. #define kTextEncodingMacCentralEurRoman  29
  55. #define kTextEncodingMacVietnamese         30
  56. #define kTextEncodingMacExtArabic         31                    /*  The following use script code 0, smRoman */
  57. #define kTextEncodingMacSymbol             33
  58. #define kTextEncodingMacDingbats         34
  59. #define kTextEncodingMacTurkish         35
  60. #define kTextEncodingMacCroatian         36
  61. #define kTextEncodingMacIcelandic         37
  62. #define kTextEncodingMacRomanian         38
  63. #define kTextEncodingMacCeltic             39
  64. #define kTextEncodingMacGaelic             40                    /*  Beginning in Mac OS 8.5, the following meta-value is used to indicate Unicode in some parts */
  65.                                                             /*  of the Mac OS which previously only expected a Mac OS script code. In some of these places, */
  66.                                                             /*  only 7 bits are available to indicate encoding (script code), so kTextEncodingUnicodeDefault */
  67.                                                             /*  cannot be used. For example, kTextEncodingMacUnicode can be used to indicate Unicode in the */
  68.                                                             /*  7-bit script code field of a Unicode input method's ComponentDescription.componentFlags field; */
  69.                                                             /*  it can also be used to indicate Unicode in the 16-bit script code field of an AppleEvent's */
  70.                                                             /*  typeIntlWritingCode text tag. */
  71. #define kTextEncodingMacUnicode         0x7E                /*  Meta-value, Unicode as a Mac encoding */
  72.                                                             /*  The following use script code 4, smArabic */
  73. #define kTextEncodingMacFarsi             0x8C                /*  Like MacArabic but uses Farsi digits */
  74.                                                             /*  The following use script code 7, smCyrillic */
  75. #define kTextEncodingMacUkrainian         0x98                /*  Meta-value in TEC 1.5 & later; maps to kTextEncodingMacCyrillic variant     */
  76.                                                             /*  The following use script code 28, smEthiopic */
  77. #define kTextEncodingMacInuit             0xEC                /*  The following use script code 32, smUnimplemented */
  78. #define kTextEncodingMacVT100             0xFC                /*  VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc */
  79.                                                             /*  Special Mac OS encodings */
  80. #define kTextEncodingMacHFS             0xFF                /*  Meta-value, should never appear in a table. */
  81.                                                             /*  Unicode & ISO UCS encodings begin at 0x100 */
  82. #define kTextEncodingUnicodeDefault     0x0100                /*  Meta-value, should never appear in a table. */
  83. #define kTextEncodingUnicodeV1_1         0x0101
  84. #define kTextEncodingISO10646_1993         0x0101                /*  Code points identical to Unicode 1.1 */
  85. #define kTextEncodingUnicodeV2_0         0x0103                /*  New location for Korean Hangul */
  86. #define kTextEncodingUnicodeV2_1         0x0103                /*  We treat both Unicode 2.0 and Unicode 2.1 as 2.1 */
  87.                                                             /*  ISO 8-bit and 7-bit encodings begin at 0x200 */
  88. #define kTextEncodingISOLatin1             0x0201                /*  ISO 8859-1 */
  89. #define kTextEncodingISOLatin2             0x0202                /*  ISO 8859-2 */
  90. #define kTextEncodingISOLatin3             0x0203                /*  ISO 8859-3 */
  91. #define kTextEncodingISOLatin4             0x0204                /*  ISO 8859-4 */
  92. #define kTextEncodingISOLatinCyrillic     0x0205                /*  ISO 8859-5 */
  93. #define kTextEncodingISOLatinArabic     0x0206                /*  ISO 8859-6, = ASMO 708, =DOS CP 708 */
  94. #define kTextEncodingISOLatinGreek         0x0207                /*  ISO 8859-7 */
  95. #define kTextEncodingISOLatinHebrew     0x0208                /*  ISO 8859-8 */
  96. #define kTextEncodingISOLatin5             0x0209                /*  ISO 8859-9 */
  97. #define kTextEncodingISOLatin6             0x020A                /*  ISO 8859-10                                         */
  98. #define kTextEncodingISOLatin7             0x020D                /*  ISO 8859-13, Baltic Rim                             */
  99. #define kTextEncodingISOLatin8             0x020E                /*  ISO 8859-14, Celtic                                 */
  100. #define kTextEncodingISOLatin9             0x020F                /*  ISO 8859-15, 8859-1 changed for EURO & CP1252 letters     */
  101.                                                             /*  MS-DOS & Windows encodings begin at 0x400 */
  102. #define kTextEncodingDOSLatinUS         0x0400                /*  code page 437 */
  103. #define kTextEncodingDOSGreek             0x0405                /*  code page 737 (formerly code page 437G) */
  104. #define kTextEncodingDOSBalticRim         0x0406                /*  code page 775 */
  105. #define kTextEncodingDOSLatin1             0x0410                /*  code page 850, "Multilingual" */
  106. #define kTextEncodingDOSGreek1             0x0411                /*  code page 851 */
  107. #define kTextEncodingDOSLatin2             0x0412                /*  code page 852, Slavic */
  108. #define kTextEncodingDOSCyrillic         0x0413                /*  code page 855, IBM Cyrillic */
  109. #define kTextEncodingDOSTurkish         0x0414                /*  code page 857, IBM Turkish */
  110. #define kTextEncodingDOSPortuguese         0x0415                /*  code page 860 */
  111. #define kTextEncodingDOSIcelandic         0x0416                /*  code page 861 */
  112. #define kTextEncodingDOSHebrew             0x0417                /*  code page 862 */
  113. #define kTextEncodingDOSCanadianFrench     0x0418                /*  code page 863 */
  114. #define kTextEncodingDOSArabic             0x0419                /*  code page 864 */
  115. #define kTextEncodingDOSNordic             0x041A                /*  code page 865 */
  116. #define kTextEncodingDOSRussian         0x041B                /*  code page 866 */
  117. #define kTextEncodingDOSGreek2             0x041C                /*  code page 869, IBM Modern Greek */
  118. #define kTextEncodingDOSThai             0x041D                /*  code page 874, also for Windows */
  119. #define kTextEncodingDOSJapanese         0x0420                /*  code page 932, also for Windows; Shift-JIS with additions */
  120. #define kTextEncodingDOSChineseSimplif     0x0421                /*  code page 936, also for Windows; was EUC-CN, now GBK (EUC-CN extended) */
  121. #define kTextEncodingDOSKorean             0x0422                /*  code page 949, also for Windows; Unified Hangul Code (EUC-KR extended) */
  122. #define kTextEncodingDOSChineseTrad     0x0423                /*  code page 950, also for Windows; Big-5 */
  123. #define kTextEncodingWindowsLatin1         0x0500                /*  code page 1252 */
  124. #define kTextEncodingWindowsANSI         0x0500                /*  code page 1252 (alternate name) */
  125. #define kTextEncodingWindowsLatin2         0x0501                /*  code page 1250, Central Europe */
  126. #define kTextEncodingWindowsCyrillic     0x0502                /*  code page 1251, Slavic Cyrillic */
  127. #define kTextEncodingWindowsGreek         0x0503                /*  code page 1253 */
  128. #define kTextEncodingWindowsLatin5         0x0504                /*  code page 1254, Turkish */
  129. #define kTextEncodingWindowsHebrew         0x0505                /*  code page 1255 */
  130. #define kTextEncodingWindowsArabic         0x0506                /*  code page 1256 */
  131. #define kTextEncodingWindowsBalticRim     0x0507                /*  code page 1257 */
  132. #define kTextEncodingWindowsVietnamese     0x0508                /*  code page 1258 */
  133. #define kTextEncodingWindowsKoreanJohab  0x0510                /*  code page 1361, for Windows NT */
  134.                                                             /*  Various national standards begin at 0x600 */
  135. #define kTextEncodingUS_ASCII             0x0600
  136. #define kTextEncodingJIS_X0201_76         0x0620                /*  JIS Roman and 1-byte katakana (halfwidth) */
  137. #define kTextEncodingJIS_X0208_83         0x0621
  138. #define kTextEncodingJIS_X0208_90         0x0622
  139. #define kTextEncodingJIS_X0212_90         0x0623
  140. #define kTextEncodingJIS_C6226_78         0x0624
  141. #define kTextEncodingGB_2312_80         0x0630
  142. #define kTextEncodingGBK_95             0x0631                /*  annex to GB 13000-93; for Windows 95; EUC-CN extended */
  143. #define kTextEncodingKSC_5601_87         0x0640                /*  same as KSC 5601-92 without Johab annex */
  144. #define kTextEncodingKSC_5601_92_Johab     0x0641                /*  KSC 5601-92 Johab annex */
  145. #define kTextEncodingCNS_11643_92_P1     0x0651                /*  CNS 11643-1992 plane 1 */
  146. #define kTextEncodingCNS_11643_92_P2     0x0652                /*  CNS 11643-1992 plane 2 */
  147. #define kTextEncodingCNS_11643_92_P3     0x0653                /*  CNS 11643-1992 plane 3 (was plane 14 in 1986 version) */
  148.                                                             /*  ISO 2022 collections begin at 0x800 */
  149. #define kTextEncodingISO_2022_JP         0x0820
  150. #define kTextEncodingISO_2022_JP_2         0x0821
  151. #define kTextEncodingISO_2022_CN         0x0830
  152. #define kTextEncodingISO_2022_CN_EXT     0x0831
  153. #define kTextEncodingISO_2022_KR         0x0840                /*  EUC collections begin at 0x900 */
  154. #define kTextEncodingEUC_JP             0x0920                /*  ISO 646, 1-byte katakana, JIS 208, JIS 212 */
  155. #define kTextEncodingEUC_CN             0x0930                /*  ISO 646, GB 2312-80 */
  156. #define kTextEncodingEUC_TW             0x0931                /*  ISO 646, CNS 11643-1992 Planes 1-16 */
  157. #define kTextEncodingEUC_KR             0x0940                /*  ISO 646, KS C 5601-1987 */
  158.                                                             /*  Misc standards begin at 0xA00 */
  159. #define kTextEncodingShiftJIS             0x0A01                /*  plain Shift-JIS */
  160. #define kTextEncodingKOI8_R             0x0A02                /*  Russian internet standard */
  161. #define kTextEncodingBig5                 0x0A03                /*  Big-5 (has variants) */
  162. #define kTextEncodingMacRomanLatin1     0x0A04                /*  Mac OS Roman permuted to align with ISO Latin-1 */
  163. #define kTextEncodingHZ_GB_2312         0x0A05                /*  HZ (RFC 1842, for Chinese mail & news) */
  164.                                                             /*  Other platform encodings */
  165. #define kTextEncodingNextStepLatin         0x0B01                /*  NextStep encoding */
  166.                                                             /*  EBCDIC & IBM host encodings begin at 0xC00 */
  167. #define kTextEncodingEBCDIC_US             0x0C01                /*  basic EBCDIC-US */
  168. #define kTextEncodingEBCDIC_CP037         0x0C02                /*  code page 037, extended EBCDIC (Latin-1 set) for US,Canada... */
  169.                                                             /*  Special values */
  170. #define kTextEncodingMultiRun             0x0FFF                /*  Multi-encoding text with external run info */
  171. #define kTextEncodingUnknown             0xFFFF                /*  Unknown or unspecified                             */
  172.                                                             /*  The following are older names for backward compatibility */
  173. #define kTextEncodingMacTradChinese     2
  174. #define kTextEncodingMacRSymbol         8
  175. #define kTextEncodingMacSimpChinese     25
  176. #define kTextEncodingMacGeez             28
  177. #define kTextEncodingMacEastEurRoman     29
  178. #define kTextEncodingMacUninterp         32
  179.  
  180.                                                             /*  Default TextEncodingVariant, for any TextEncodingBase */
  181. #define kTextEncodingDefaultVariant     0                    /*  Variants of kTextEncodingMacRoman                                                         */
  182. #define kMacRomanDefaultVariant         0                    /*  meta value, maps to 1 or 2 depending on System     */
  183. #define kMacRomanCurrencySignVariant     1                    /*  Mac OS version < 8.5, 0xDB is CURRENCY SIGN */
  184. #define kMacRomanEuroSignVariant         2                    /*  Mac OS version >= 8.5, 0xDB is EURO SIGN             */
  185.                                                             /*  Variants of kTextEncodingMacCyrillic (for TEC 1.5 and later)                                 */
  186. #define kMacCyrillicDefaultVariant         0                    /*  meta value, maps to 1, 2, or 3 depending on System */
  187. #define kMacCyrillicCurrSignStdVariant     1                    /*  Mac OS < 9.0 (RU,BG), 0xFF = CURRENCY SIGN, 0xA2/0xB6 = CENT / PARTIAL DIFF. */
  188. #define kMacCyrillicCurrSignUkrVariant     2                    /*  Mac OS < 9.0 (UA,LangKit), 0xFF = CURRENCY SIGN, 0xA2/0xB6 = GHE WITH UPTURN */
  189. #define kMacCyrillicEuroSignVariant     3                    /*  Mac OS >= 9.0, 0xFF is EURO SIGN, 0xA2/0xB6 = GHE WITH UPTURN */
  190.                                                             /*  Variants of kTextEncodingMacIcelandic                                                     */
  191. #define kMacIcelandicStdDefaultVariant     0                    /*  meta value, maps to 2 or 4 depending on System     */
  192. #define kMacIcelandicTTDefaultVariant     1                    /*  meta value, maps to 3 or 5 depending on System     */
  193.                                                             /*  The following are for Mac OS version < 8.5, 0xDB is CURRENCY SIGN                         */
  194. #define kMacIcelandicStdCurrSignVariant  2                    /*  0xBB/0xBC are fem./masc. ordinal indicators */
  195. #define kMacIcelandicTTCurrSignVariant     3                    /*  0xBB/0xBC are fi/fl ligatures */
  196.                                                             /*  The following are for Mac OS version >= 8.5, 0xDB is EURO SIGN                             */
  197. #define kMacIcelandicStdEuroSignVariant  4                    /*  0xBB/0xBC are fem./masc. ordinal indicators */
  198. #define kMacIcelandicTTEuroSignVariant     5                    /*  0xBB/0xBC are fi/fl ligatures */
  199.                                                             /*  Variants of kTextEncodingMacCroatian                                                         */
  200. #define kMacCroatianDefaultVariant         0                    /*  meta value, maps to 1 or 2 depending on System     */
  201. #define kMacCroatianCurrencySignVariant  1                    /*  Mac OS version < 8.5, 0xDB is CURRENCY SIGN         */
  202. #define kMacCroatianEuroSignVariant     2                    /*  Mac OS version >= 8.5, 0xDB is EURO SIGN             */
  203.                                                             /*  Variants of kTextEncodingMacRomanian                                                         */
  204. #define kMacRomanianDefaultVariant         0                    /*  meta value, maps to 1 or 2 depending on System     */
  205. #define kMacRomanianCurrencySignVariant  1                    /*  Mac OS version < 8.5, 0xDB is CURRENCY SIGN         */
  206. #define kMacRomanianEuroSignVariant     2                    /*  Mac OS version >= 8.5, 0xDB is EURO SIGN             */
  207.                                                             /*  Variants of kTextEncodingMacJapanese */
  208. #define kMacJapaneseStandardVariant     0
  209. #define kMacJapaneseStdNoVerticalsVariant  1
  210. #define kMacJapaneseBasicVariant         2
  211. #define kMacJapanesePostScriptScrnVariant  3
  212. #define kMacJapanesePostScriptPrintVariant  4
  213. #define kMacJapaneseVertAtKuPlusTenVariant  5                /*  Variants of kTextEncodingMacArabic */
  214. #define kMacArabicStandardVariant         0                    /*  0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Cairo) */
  215. #define kMacArabicTrueTypeVariant         1                    /*  0xC0 is asterisk, 0x2A & 0xAA are multiply signs (e.g. Baghdad) */
  216. #define kMacArabicThuluthVariant         2                    /*  0xC0 is Arabic five-point star, 0x2A & 0xAA are multiply signs */
  217. #define kMacArabicAlBayanVariant         3                    /*  8-spoke asterisk, multiply sign, Koranic ligatures & parens */
  218.                                                             /*  Variants of kTextEncodingMacFarsi */
  219. #define kMacFarsiStandardVariant         0                    /*  0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Tehran) */
  220. #define kMacFarsiTrueTypeVariant         1                    /*  asterisk, multiply signs, Koranic ligatures, geometric shapes */
  221.                                                             /*  Variants of kTextEncodingMacHebrew */
  222. #define kMacHebrewStandardVariant         0
  223. #define kMacHebrewFigureSpaceVariant     1                    /*  Variants of kTextEncodingMacVT100                                                         */
  224. #define kMacVT100DefaultVariant         0                    /*  meta value, maps to 1 or 2 depending on System     */
  225. #define kMacVT100CurrencySignVariant     1                    /*  Mac OS version < 8.5, 0xDB is CURRENCY SIGN         */
  226. #define kMacVT100EuroSignVariant         2                    /*  Mac OS version >= 8.5, 0xDB is EURO SIGN             */
  227.                                                             /*  Variants of Unicode & ISO 10646 encodings */
  228. #define kUnicodeNoSubset                 0
  229. #define kUnicodeCanonicalDecompVariant     2                    /*  canonical decomposition; excludes composed characters */
  230.                                                             /*  Variants of Big-5 encoding */
  231. #define kBig5_BasicVariant                 0
  232. #define kBig5_StandardVariant             1                    /*  0xC6A1-0xC7FC: kana, Cyrillic, enclosed numerics */
  233. #define kBig5_ETenVariant                 2                    /*  adds kana, Cyrillic, radicals, etc with hi bytes C6-C8,F9 */
  234.                                                             /*  Unicode variants not yet supported (and not fully defined) */
  235. #define kUnicodeNoCompatibilityVariant     1
  236. #define kUnicodeNoComposedVariant         3
  237. #define kUnicodeNoCorporateVariant         4                    /*  The following are older names for backward compatibility */
  238. #define kMacRomanStandardVariant         0
  239. #define kMacIcelandicStandardVariant     0
  240. #define kMacIcelandicTrueTypeVariant     1
  241. #define kJapaneseStandardVariant         0
  242. #define kJapaneseStdNoVerticalsVariant     1
  243. #define kJapaneseBasicVariant             2
  244. #define kJapanesePostScriptScrnVariant     3
  245. #define kJapanesePostScriptPrintVariant  4
  246. #define kJapaneseVertAtKuPlusTenVariant  5                    /*  kJapaneseStdNoOneByteKanaVariant = 6,    // replaced by kJapaneseNoOneByteKanaOption */
  247.                                                             /*  kJapaneseBasicNoOneByteKanaVariant = 7,    // replaced by kJapaneseNoOneByteKanaOption     */
  248. #define kHebrewStandardVariant             0
  249. #define kHebrewFigureSpaceVariant         1
  250. #define kUnicodeMaxDecomposedVariant     2                    /*  replaced by kUnicodeCanonicalDecompVariant */
  251.                                                             /*  The following Japanese variant options were never supported and are now deprecated. */
  252.                                                             /*  In TEC 1.4 and later their functionality is replaced by the Unicode Converter options listed. */
  253. #define kJapaneseNoOneByteKanaOption     0x20                /*  replaced by UnicodeConverter option kUnicodeNoHalfwidthCharsBit */
  254. #define kJapaneseUseAsciiBackslashOption  0x40                /*  replaced by UnicodeConverter option kUnicodeForceASCIIRangeBit */
  255.  
  256.                                                             /*  Default TextEncodingFormat for any TextEncodingBase */
  257. #define kTextEncodingDefaultFormat         0                    /*  Formats for Unicode & ISO 10646 */
  258. #define kUnicode16BitFormat             0
  259. #define kUnicodeUTF7Format                 1
  260. #define kUnicodeUTF8Format                 2
  261. #define kUnicode32BitFormat             3
  262.  
  263. #define kTextEncodingFullName             0
  264. #define kTextEncodingBaseName             1
  265. #define kTextEncodingVariantName         2
  266. #define kTextEncodingFormatName         3
  267.  
  268. #define kTextScriptDontCare             (-128)
  269. #define kTextLanguageDontCare             (-128)
  270. #define kTextRegionDontCare             (-128)
  271.  
  272. #define kTECInfoCurrentFormat             2                    /*  any future formats will just add fields at the end */
  273. #define kTECKeepInfoFixBit                 0
  274. #define kTECFallbackTextLengthFixBit     1
  275. #define kTECTextRunBitClearFixBit         2
  276. #define kTECTextToUnicodeScanFixBit     3
  277. #define kTECAddForceASCIIChangesBit     4
  278. #define kTECPreferredEncodingFixBit     5
  279. #define kTECAddTextRunHeuristicsBit     6
  280. #define kTECAddFallbackInterruptBit     7
  281.  
  282. #define kTECKeepInfoFixMask             0x00000001
  283. #define kTECFallbackTextLengthFixMask     0x00000002
  284. #define kTECTextRunBitClearFixMask         0x00000004
  285. #define kTECTextToUnicodeScanFixMask     0x00000008
  286. #define kTECAddForceASCIIChangesMask     0x00000010
  287. #define kTECPreferredEncodingFixMask     0x00000020
  288. #define kTECAddTextRunHeuristicsMask     0x00000040
  289. #define kTECAddFallbackInterruptMask     0x00000080
  290.  
  291. #define kUCCharPropTypeGenlCategory     1                    /*  requests enumeration value */
  292. #define kUCCharPropTypeCombiningClass     2                    /*  requests numeric value 0..255 */
  293. #define kUCCharPropTypeBidiCategory     3                    /*  requests enumeration value */
  294.  
  295.                                                             /*  Normative categories: */
  296. #define kUCGenlCatOtherNotAssigned         0                    /*  Cn Other, Not Assigned */
  297. #define kUCGenlCatOtherControl             1                    /*  Cc Other, Control */
  298. #define kUCGenlCatOtherFormat             2                    /*  Cf Other, Format */
  299. #define kUCGenlCatOtherSurrogate         3                    /*  Cs Other, Surrogate */
  300. #define kUCGenlCatOtherPrivateUse         4                    /*  Co Other, Private Use */
  301. #define kUCGenlCatMarkNonSpacing         5                    /*  Mn Mark, Non-Spacing */
  302. #define kUCGenlCatMarkSpacingCombining     6                    /*  Mc Mark, Spacing Combining */
  303. #define kUCGenlCatMarkEnclosing         7                    /*  Me Mark, Enclosing */
  304. #define kUCGenlCatNumberDecimalDigit     8                    /*  Nd Number, Decimal Digit */
  305. #define kUCGenlCatNumberLetter             9                    /*  Nl Number, Letter */
  306. #define kUCGenlCatNumberOther             10                    /*  No Number, Other */
  307. #define kUCGenlCatSeparatorSpace         11                    /*  Zs Separator, Space */
  308. #define kUCGenlCatSeparatorLine         12                    /*  Zl Separator, Line */
  309. #define kUCGenlCatSeparatorParagraph     13                    /*  Zp Separator, Paragraph */
  310.                                                             /*  Informative categories: */
  311. #define kUCGenlCatLetterUppercase         14                    /*  Lu Letter, Uppercase */
  312. #define kUCGenlCatLetterLowercase         15                    /*  Ll Letter, Lowercase */
  313. #define kUCGenlCatLetterTitlecase         16                    /*  Lt Letter, Titlecase */
  314. #define kUCGenlCatLetterModifier         17                    /*  Lm Letter, Modifier */
  315. #define kUCGenlCatLetterOther             18                    /*  Lo Letter, Other */
  316. #define kUCGenlCatPunctConnector         20                    /*  Pc Punctuation, Connector */
  317. #define kUCGenlCatPunctDash             21                    /*  Pd Punctuation, Dash */
  318. #define kUCGenlCatPunctOpen             22                    /*  Ps Punctuation, Open */
  319. #define kUCGenlCatPunctClose             23                    /*  Pe Punctuation, Close */
  320. #define kUCGenlCatPunctInitialQuote     24                    /*  Pi Punctuation, Initial quote */
  321. #define kUCGenlCatPunctFinalQuote         25                    /*  Pf Punctuation, Final quote */
  322. #define kUCGenlCatPunctOther             26                    /*  Po Punctuation, Other */
  323. #define kUCGenlCatSymbolMath             28                    /*  Sm Symbol, Math */
  324. #define kUCGenlCatSymbolCurrency         29                    /*  Sc Symbol, Currency */
  325. #define kUCGenlCatSymbolModifier         30                    /*  Sk Symbol, Modifier */
  326. #define kUCGenlCatSymbolOther             31                    /*  So Symbol, Other */
  327.  
  328. #define kUCBidiCatNotApplicable         0                    /*  for now use this for unassigned */
  329.                                                             /*  Strong types: */
  330. #define kUCBidiCatLeftRight             1                    /*  L  Left-Right */
  331. #define kUCBidiCatRightLeft             2                    /*  R  Right-Left */
  332.                                                             /*  Weak types: */
  333. #define kUCBidiCatEuroNumber             3                    /*  EN European Number */
  334. #define kUCBidiCatEuroNumberSeparator     4                    /*  ES European Number Separator */
  335. #define kUCBidiCatEuroNumberTerminator     5                    /*  ET European Number Terminator */
  336. #define kUCBidiCatArabicNumber             6                    /*  AN Arabic Number */
  337. #define kUCBidiCatCommonNumberSeparator  7                    /*  CS Common Number Separator */
  338.                                                             /*  Separators: */
  339. #define kUCBidiCatBlockSeparator         8                    /*  B  Block Separator */
  340. #define kUCBidiCatSegmentSeparator         9                    /*  S  Segment Separator */
  341.                                                             /*  Neutrals: */
  342. #define kUCBidiCatWhitespace             10                    /*  WS Whitespace */
  343. #define kUCBidiCatOtherNeutral             11                    /*  ON Other Neutrals (unassigned codes could use this) */
  344.  
  345.  
  346. #endif /* __TEXTCOMMON_R__ */
  347.  
  348.